import Vue from 'vue'
import VueRouter from 'vue-router'


// login / home / welcome 使用懒加载方式，并且三个页面打包到一个js文件
  // import Login from '@/components/Login.vue'
  const Login = () => import(/*webpackChunkName:'login_home_welcome'*/ '@/components/Login.vue')

  // import Home from '@/components/Home.vue'
  const Home = () => import(/*webpackChunkName:'login_home_welcome'*/ '@/components/Home.vue')

  // import Welcome from '@/components/Welcome.vue'
  const Welcome = () => import(/*webpackChunkName:'login_home_welcome'*/ '@/components/Welcome.vue')



// Users/Rights/Roles 使用懒加载方式，并且三个页面打包到一个js文件
  // import Users from '@/components/user/Users.vue'
  const Users = () => import(/*webpackChunkName:'Users_Rights_Roles'*/ '@/components/user/Users.vue')
  // import Rights from '@/components/power/Rights.vue'
  const Rights = () => import(/*webpackChunkName:'Users_Rights_Roles'*/ '@/components/power/Rights.vue')
  // import Roles from '@/components/power/Roles.vue'
  const Roles = () => import(/*webpackChunkName:'Users_Rights_Roles'*/ '@/components/power/Roles.vue')


// Cate/Params 使用懒加载方式，并且2个页面打包到一个js文件
  // import Cate from '@/components/goods/Cate.vue'
  const Cate = () => import(/*webpackChunkName:'Cate_Params'*/ '@/components/goods/Cate.vue')
  // import Params from '@/components/goods/Params.vue'
  const Params = () => import(/*webpackChunkName:'Cate_Params'*/ '@/components/goods/Params.vue')



// GoodsList / Add 使用懒加载方式，并且2个页面打包到一个js文件
  // import List from '@/components/goods/List.vue'
  const List = () => import(/*webpackChunkName:'GoodsList_Add'*/ '@/components/goods/List.vue')
  // import Add from '@/components/goods/Add.vue'
  const Add = () => import(/*webpackChunkName:'GoodsList_Add'*/ '@/components/goods/Add.vue')


// Order / Report 使用懒加载方式，并且2个页面打包到一个js文件
  // import Order from '@/components/order/Order.vue'
  const Order = () => import(/*webpackChunkName:'Order_Report'*/ '@/components/order/Order.vue')
  // import Report from '@/components/report/Report.vue'
  const Report = () => import(/*webpackChunkName:'Order_Report'*/ '@/components/report/Report.vue')


Vue.use(VueRouter)

const routes = [
  {path: '/',redirect: '/login'},
  {path: '/login',component: Login},
  {
    path: '/home',
    component: Home,
    redirect: '/welcome',
    children: [
      {path: '/welcome',component: Welcome},
      {path: '/users',component: Users},
      {path: '/rights',component: Rights},
      {path: '/roles',component: Roles},
      {path: '/categories',component: Cate},
      {path: '/params',component: Params},
      {path: '/goods',component: List},
      {path: '/goods/add',component: Add},
      {path: '/orders',component: Order},
      {path: '/reports',component: Report},
    ]
  }
]

const router = new VueRouter({
  routes
})

// 为路由对象，挂载 beforeEach 导航守卫
router.beforeEach((to,from,next) => {
  // to：将要访问的路径
  // from: 代表从哪个路径跳转而来
  // next： 是一个函数，表示放行
      //  next() 放行   next('/login') 强制跳转

  // 如果用户要访问登录页，直接放行
  if(to.path === '/login') return next()

  // 若访问的不是登录页，要判断是否有token
  // 从sessionStorage 中获取到保存的token值
  const tokenStr = window.sessionStorage.getItem('token')
  // 没有token，强制跳转到登录页
  if(!tokenStr) return next('/login')
  next()  // 有token就放行
})

export default router
